/*
*************************************************************************************************************************
*                                                           
*                                                           
*                                     Alle rechte vorbehalten  -All rights reserved
*
*************************************************************************************************************************
*
* @Filename___:  main.c
* @Author_____:  raoj
* @Function ___:  
*
*************************************************************************************************************************
*
* Date________:  2017-03-16
* Variant______: 
* Revision_____: 
* State _______: is_Released[ no ]  or is_debug[ yes ]
* 
*************************************************************************************************************************
*
*************************************************************************************************************************
* List of modefiy
*
* History~
*        2016-7-29:raoj
*
*************************************************************************************************************************
*/
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include "..\kernel\os_code\e_include.h"
#include "interrupt.h"
#include "mcu_init.h"
#include "app.h"
#include "ems_task.h"
#include "IIC.h"
#include "adc.h"
#include "sys_cfg.h"
#include "dec_op_api.h"
#include "dev_hal.h"
/*
**************************************************************************************************************************
 软件版本号
**************************************************************************************************************************
*/ 
#define MCU_VER                       "V0.0.5" 
#define  BUS_CLOCK		              32000000/* 总线频率 */
/*
**************************************************************************************************************************
**************************************************************************************************************************
*/                    
uint8 sysPowerOnU8  = 0;
uint8 autoDrivingModeU8 = 0;           
uint8 doorsClosedFlag = 0;            
uint8 driver_seatbeltOpenStatus = 0;   
Boolean motorStopFlag = ture;          
//S_TMR tmr;                             
extern uint8 g_startLockFlagU8;
/*
**************************************************************************************************************************
**************************************************************************************************************************
*/ 
#define    MS10_STK_SIZE (128)
#define    MS100_STK_SIZE (128)
#define    TEST_STK_SIZE (128)
#define    HOOK_STK_SIZE (128)

OSELK_STK  MS10_STACK_SIZE[MS10_STK_SIZE]   = {0,0,};
OSELK_STK  MS100_STACK_SIZE[MS100_STK_SIZE] = {0,0,};
OSELK_STK  TEST_STACK_SIZE[TEST_STK_SIZE]     = {0,0,};
OSELK_STK  HOOK_STACK_SIZE[HOOK_STK_SIZE]   = {0,0,};
 
/*
*****************************************************************************************************************************
* Author____: raoj
*
* func name_: led_task                                                
*
* param_____: void
*
* return____: void
*
* output____: NONE
*
*****************************************************************************************************************************
*/
void task_10ms(void)
{                
  uint8 ret = 0;
  
  for(;;) 
  {

#if CAN_OBD_CHK_EN
    check_canCommIsOk();                     /* OBD口can通信诊断     */
#endif

#if OBD_ERR_PATCH_EN
    obd_canComm_err_patch();                 /* OBD诊断错误处理                             */      
#endif

    HMOS_HookTaskSwi();
  }
}
/*
*****************************************************************************************************************************
* Author____: raoj
*
* func name_: task_100ms                                                
*
* param_____: void
*
* return____: void
*
* output____: NONE
*
*****************************************************************************************************************************
*/
void task_100ms(void)
{
  unsigned int ret = 0;
  
  for(;;) 
  {
    sys_led_ctrl();                          /* 系统指示灯闪烁控制   */
	
    HMOS_HookTaskSwi();
  }
}
/*
*****************************************************************************************************************************
* Author____: raoj
*
* func name_: hook_task                                                
*
* param_____: void
*
* return____: void
*
* output____: NONE
*
*****************************************************************************************************************************
*/
void hook_task(void) 
{
  
  for(;;) 
  {
  
  
  }
 
}
/*
*****************************************************************************************************************************
* Author____: raoj
*
* func name_: main                                                
*
* param_____: void
*
* return____: void
*
* output____: NONE
*
*****************************************************************************************************************************
*/
void main(void) 
{
  int ret = 0;
  
  BSP_INIT();
  
  HMOS_TaskInit();
  
  ret = create_task(test_task , TEST_TASK_ID, &TEST_STACK_SIZE[TEST_STK_SIZE-1] , 0 , IDLE_MODE , DEFAULT_PRIO);
  if(ret == -1) {
  
  }
  
  ret = create_task(task_10ms , MS10_TASK_ID , &MS10_STACK_SIZE[MS10_STK_SIZE-1] , 10 , TMR_MODE , 1);
  if(ret == -1) {
  
  }
  ret = create_task(task_100ms , MS100_TASK_ID , &MS100_STACK_SIZE[MS100_STK_SIZE-1] , 100 , TMR_MODE , 0);
  if(ret == -1) {
  
  }

  ret = create_task(hook_task , HOOK_TASK_ID, &HOOK_STACK_SIZE[HOOK_STK_SIZE-1] , 0 , HOOK_MODE , DEFAULT_PRIO);
  if(ret == -1) {
  
  }
 
  HM_OSStart_proc();
 
  for(;;);
}
  
